<?php
/*
ADDUSR.INC.PHP by martin $ 2008/05/10 17:55:23
*/

checkADMIN();

$ini_file = OD.'usrlist.ini.php';

include($ini_file); # get::$USR_LIST
include_once(OD.'mob.ini.php'); # get::Owner's setting

$header = $body = '';

if(p_('sub')=='create'){ # 新規メンバーの登録
 if(($newId=p_('ID'))!='' && ($pwd=p_('PWD'))!=''){ 
  if(!preg_match('|[[:alnum:]]+|i', $newId) || !preg_match('|[[:alnum:]]+|i', $pwd)){
    showMessage('ID/PWDに英数字以外の文字が入っているようです...');
  } else {
   $occupied1 = $occupied2 = false;
   $newAlias = p_('ALIAS');
   foreach ($USR_LIST as $usr){
    list(,$id,,$alias) = explode('|', $usr);
    if($id==$newId || $newId==$alias || isOwner($newId)){
     $occupied1 = true;
     break;
    }
    if($alias==$newAlias || $id==$newAlias || isOwner($newAlias)){
     $occupied2 = true;
     break;
    }
   }
   if($occupied1){
    showMessage('そのID名はすでに登録されています');
   } elseif ($occupied2) {
    showMessage('その投稿名はすでに登録されています');
   } else {
    if($newAlias!='' && $newAlias!='後からでも可') {
     showMessage('ID名: '.$newId.'，投稿名：'.$newAlias.' で新規登録しました');
    } else {
     showMessage('ID名: '.$newId.' で新規登録しました');
     $newAlias = '';
    }
    # フォーマット
    # entry | ID | PWD | Alias | Email | Email Open | Info | Mobile ADRS | POP3 SERVER | POP3 ID | POP3 PWD | POST CATEGORY | SEND PING | COMMENT | TRACKBACK |
    $USR_LIST[] = time()."|$newId|$pwd|$newAlias|||||||||||||";
    rewrite_ini($ini_file, $USR_LIST);
   }
  }
 } else showMessage('ID/PWDが空白のようです...');
} # create

if(p_('sub')=='detail' && p_('aim')!=''){ # ユーザー詳細設定
 foreach ($USR_LIST as $i=>$usr){
  list($entry,$id,$pwd,$alias,) = explode('|', $usr);
  $UNAME = $alias!='' ? $alias : $id;
  if($id==p_('aim')) break;
 }
 $PWD = (p_('PWD1')==p_('PWD2') && p_('PWD1')!='') ? p_('PWD1') : $pwd;
 $ALIAS = p_('ALIAS')!='' ? p_('ALIAS') : '';
 $EMAIL = preg_match("{^[0-9a-z\.\-\_!#$%&]+?@[^.]+\.?.+}i", p_('EMAIL')) ? p_('EMAIL') : '';
 $OPEN = p_('OPEN')==1 ? 1 : 0;
 $SHORT = p_('SHORT');
 $MOB_FROM = p_('MOB_FROM');
 $MOB_FROM = preg_match("{^[0-9a-z\.\-\_!#$%&;]+?@[^.]+\.?.+}i", $MOB_FROM) ? $MOB_FROM : '';
 $MOB_HOST = p_('MOB_HOST')!='' ? p_('MOB_HOST') : '';
 $MOB_ID = p_('MOB_ID')!='' ? p_('MOB_ID') : '';
 $MOB_PWD = p_('MOB_PWD')!='' ? p_('MOB_PWD') : '';
 $MOB_CAT = p_('MOB_CAT')!='' ? p_('MOB_CAT') : '';
 list($MOB_CAT,) = explode('|', $MOB_CAT);
 $MOB_PING = p_('MOB_PING')==1 ? 1 : 0;
 $MOB_CM = p_('MOB_CM')==1 ? 1 : 0;
 $MOB_TB = p_('MOB_TB')==1 ? 1 : 0;
 
 $USR_LIST[$i] = "$entry|$id|$PWD|$ALIAS|$EMAIL|$OPEN|$SHORT|$MOB_FROM|$MOB_HOST|$MOB_ID|$MOB_PWD|$MOB_CAT|$MOB_PING|$MOB_CM|$MOB_TB|";
 rewrite_ini($ini_file, $USR_LIST);
 
 $newUNAME = $ALIAS!='' ? $ALIAS : $id;
 if($UNAME != $newUNAME){
  replace_log_by_target("|$UNAME|", "|$newUNAME|"); // ログの投稿名も修正
  replace_log_by_target("|$UNAME|", "|$newUNAME|", CMT_DIR); // コメントログの投稿名も修正
 }
 showMessage('設定を書き換えました');
}

if(($did=v_('DID'))!='' && !array_key_exists('CANCEL', $_POST)){ # ユーザーの削除
 if(p_('doit')!=''){ // do delete!
  foreach ($USR_LIST as $i=>$usr){
   list(,$id,) = explode('|', $usr);
   if($id==$did) break;
  }
  array_splice($USR_LIST, $i, 1);
  rewrite_ini($ini_file, $USR_LIST);
  refresh_page('admin.php?mode=add_usr', 2000);
  showMessage('ユーザーID: '.$did.' を削除しました');
 } else {
  $body .= '<form action="admin.php" method="post" style="width: 400px; margin-top: 3em;">
<fieldset>
<legend> 最 終 確 認 </legend>
<div class="hidden">
 <input type="hidden" name="mode" id="mode" value="add_usr" />
 <input type="hidden" name="DID" value="'.$did.'" />
 <input type="hidden" name="doit" value="1" />
</div>
<ul class="p2em" style="width: 360px;">
 <li>これを実行すると，ユーザーID: '.$did.' のエントリーは'.OWNER.' のエントリーに移動します。</li>
</ul>
<div style="width: 250px; margin: -1em auto 1em auto; text-align: center;">
  <input type="image" src="Images/delete1.png"
    onmouseover="this.src=\'Images/delete2.png\';"
    onmouseout="this.src=\'Images/delete1.png\'" alt="Delete" title="削 除" />&nbsp;&nbsp;&nbsp;
  <input type="image" src="Images/reload1.png" onclick="history.go(-1);return false;"
    onmouseover="this.src=\'Images/reload2.png\';"
    onmouseout="this.src=\'Images/reload1.png\'" alt="Return" title="やっぱり削除しない" />
</div>
</fieldset>
</form>
 ';
 }
 return $DIVISION['body'] .= $header.$body;
}

if(v_('sub')=='detail'){
 $aim = v_('aim');
 foreach ($USR_LIST as $i=>$usr){
  list(,$id,) = explode('|', $usr);
  if($id==$aim) break;
 }
 list(,,$pwd,$alias,$email,$open,$short,$from,$host,$mobid,$mobpwd,$mobcat,$send_ping,$allowC,$allowP,) = explode('|', $usr);
 $body = '
<form action="admin.php" method="post"
 style="width: 80%; margin: 2.5em auto; background:transparent url(./Images/member-info.png) 98% 97% no-repeat;">
<fieldset>
<legend>ユーザーの詳細</legend>
<div class="hidden">
 <input type="hidden" name="mode" value="add_usr" />
 <input type="hidden" name="sub" value="detail" />
 <input type="hidden" name="aim" value="'.$aim.'" />
 <script type="text/javascript">/*<![CDATA[*/
 checkPWD = function(){
  var pwd1 = d.getElementById("PWD1").value;
  var pwd2 = d.getElementById("PWD2").value;
  if(pwd1!=pwd2 && pwd2!=""){
   alert("パスワードがひとつめと違うようです。確認して下さい。");
   d.getElementById("PWD2").focus();
  }
 }
 /*]]>*/</script>
</div>
<style type="text/css">
 .lt {line-height: 1.7;}
 .lt input, .lt select, .lt textarea { margin-left: 10px; }
 .lt img { vertical-align: middle; cursor: pointer; }
 .howto { display: none; border: solid 2px orange; background: snow; line-height:1.2; padding: 5px; font-size:13px; }
</style>
<table style="width: auto; margin: 0 auto 1em 1em; font-size: 100%;">
 <col style="width: 220px;" /><col style="width: 250px;" />
<tr><td class="rt">ユーザーID: </td><td class="lt" style="font-weight:600; color:#009900;">  '.$aim.'</td></tr>
<tr>
 <td class="rt">パスワード(最大32文字): </td>
 <td class="lt"><input type="password" name="PWD1" id="PWD1" size="8" maxlength="32" value="'.$pwd.'" /></td>
</tr>
<tr>
 <td class="rt">パスワード(再入力): </td>
 <td class="lt"><input type="password" name="PWD2" id="PWD2" size="8" maxlength="32" value="'.$pwd.'" onblur="checkPWD()" /></td>
</tr>
<tr><td class="rt">投稿ネーム:</td>
 <td class="lt"><input type="text" name="ALIAS" id="ALIAS" size="10" value="'.$alias.'" /></td>
</tr>
<tr><td class="rt" title="コメントやトラックバックが付いたら知らせます">E-mail(通知用):</td>
 <td class="lt">
 <input type="text" name="EMAIL" id="EMAIL" size="10" value="'.$email.'" />
 <input type="checkbox" name="OPEN" id="OPEN" value="1"'.($open?' checked="checked"':'').' /><label for="OPEN">公開</label>
 </td>
</tr>
<tr><td class="rt">何かひと言:</td>
 <td class="lt">
 <textarea name="SHORT" id="SHORT" cols="30" rows="5">'.str_replace('`', NL, $short).'</textarea>
 </td>
</tr>
<tr><td colspan="2" style="text-align: center; background:#F5F5FF; border:solid 1px #ddddff;">モブログ設定</td></tr>
<tr>
 <td class="rt">送信元ケータイのメルアド:</td>
 <td class="lt">
  <input type="text" name="MOB_FROM" id="MOB_FROM" size="12" value="'.$from.'" />
  <div id="intro1" style="display: inline;">
   <span title="ヘルプ" onclick=\'o("#intro-body1").toggle();\'>
    <img src="../Images/help.png" alt="" width="18" height="18" />
   </span>
   <p id="intro-body1" class="howto">　メルアドは、カンマあるいはパイプで区切って複数設定できます。</p>
  </div> 
 </td>
</tr>
<tr><td class="rt">接続するメールサーバー:</td>
 <td class="lt">
  <input type="text" name="MOB_HOST" id="MOB_HOST" size="12" value="'.$host.'" />
  <div id="intro2" style="display: inline;">
   <span title="ヘルプ" onclick=\'o("#intro-body2").toggle();\'>
    <img src="../Images/help.png" alt="" width="18" height="18" />
   </span>
   <p id="intro-body2" class="howto">
　モブログ記事をポストしたメールサーバーのアドレスを指定します。例えば、Yahoo! Mailならpop.mail.yahoo.co.jp、Gmailなら
 pop.gmail.com など。
   </p>
  </div>
 </td>
</tr>
<tr><td class="rt">メールサーバーへの接続ID:</td>
 <td class="lt">
  <input type="text" name="MOB_ID" id="MOB_ID" size="12" value="'.$mobid.'" /> 
  <div id="intro3" style="display: inline;">
   <span title="ヘルプ" onclick=\'o("#intro-body3").toggle();\'>
    <img src="../Images/help.png" alt="" width="18" height="18" />
   </span>
   <p id="intro-body3" class="howto">
　ここでのIDや次に設定するパスワード(PWD)は、メールサーバーに接続する際に使うもので、
ブログで登録したユーザーIDやユーザーPWDとは違うので注意して下さい。
   </p>
  </div>
 </td>
</tr>
<tr><td class="rt">メールサーバーへの接続PWD:</td>
 <td class="lt"><input type="text" name="MOB_PWD" id="MOB_PWD" size="12" value="'.$mobpwd.'" /></td>
</tr>
<tr><td class="rt">モブログの際の投稿先カテゴリー:</td>
 <td class="lt">'.cat_select($mobcat,'','', 'MOB_CAT').'</td>
</tr>
<tr><td class="rt">投稿時の更新Pingの送信:</td>
 <td class="lt">
  <input name="MOB_PING" id="mob1"'.($send_ping?' checked="checked" ':' ').'value="1" type="radio"><label for="mob1"> する</label>
  <input name="MOB_PING" id="mob2"'.(!$send_ping?' checked="checked" ':' ').'value="0" type="radio"><label for="mob2"> しない</label>
 </td>
</tr>
<tr><td class="rt">コメント受付の許可:</td>
 <td class="lt">
  <input name="MOB_CM" id="cm1"'.($allowC?' checked="checked" ':' ').'value="1" type="radio"><label for="cm1"> する</label>
  <input name="MOB_CM" id="cm2"'.(!$allowC?' checked="checked" ':' ').'value="0" type="radio"><label for="cm2"> しない</label>
 </td>
</tr>
<tr><td class="rt">トラックバック受付の許可:</td>
 <td class="lt">
  <input name="MOB_TB" id="tb1"'.($allowP?' checked="checked" ':' ').'value="1" type="radio"><label for="tb1"> する</label>
  <input name="MOB_TB" id="tb2"'.(!$allowP?' checked="checked" ':' ').'value="0" type="radio"><label for="tb2"> しない</label>
 </td>
</tr>
<tr>
 <td colspan="2" style="text-align: center;">
<input type="image" src="Images/reload1.png" title="更 新"
    style="vertical-align: top;"
    onmouseover="this.src=\'Images/reload2.png\';"
    onmouseout="this.src=\'Images/reload1.png\'" alt="Add" />
 </td>
</tr>
</table>
</fieldset>
</form>
 ';
 return $DIVISION['body'] .= $header.$body;
}


$body .= '
<form action="admin.php" method="post" style="width: 80%; margin-top: 1.5em; background: url(./Images/member-info.png) 95% 53% no-repeat;">
<fieldset>
<legend>ユーザーの追加</legend>
<div class="hidden">
 <input type="hidden" name="mode" value="add_usr" />
 <input type="hidden" name="sub" value="create" />
</div>
<ul class="p2em">
 <li>このブロッグで記事を投稿できるメンバーを追加します</li>
 <li>ユーザーは自分の記事に対しては編集や削除が可能です</li>
 <li>ID名・PWDともに半角英数字のみです</li>
 <li>投稿名は日本語も可で，後から指定できます</li>
</ul>
<p class="center" style="margin: 1em;">
メンバーID: <input type="text" name="ID" id="ID" size="8" value="" />
PWD: <input type="text" name="PWD" id="PWD" size="8" value="" />
投稿名: <input type="text" name="ALIAS" id="ALIAS" size="8" value="後からでも可" onfocus="this.value=\'\';" />
<input type="image" src="Images/add2_1.png" title="追 加"
    style="vertical-align: middle;"
    onmouseover="this.src=\'Images/add2_2.png\';"
    onmouseout="this.src=\'Images/add2_1.png\'" alt="Add" />
</p>
</fieldset>
</form>

<form action="admin.php" id="ip-list" method="post" style="width: 80%; margin-top: 1em; background: url(./Images/member-info.png) 95% 28% no-repeat;">
<fieldset>
<legend>ユーザー登録状況</legend>
<input type="hidden" name="mode" value="add_usr" />
<ul class="p2em">
 <li>登録されている共有メンバーリストです</li>
 <li>ユーザーIDをクリックすると，メンバーの詳細情報を設定できます</li>
 <li>ユーザー毎のモブログの設定もここで行います</li>
</ul>
';

if(!empty($USR_LIST)){
 $body .= '<table cellspacing="0" cellpadding="1" style="border: solid 1px #333; width:90%; margin: 0 auto 1em auto;">
 <tr style="background:url(Images/grad.png) repeat-x;height:22px;"><th>メンバーーID</th><th>投稿名</th><th>登録日</th><th>投稿数</th><th>削除</th></tr>
 ';
} else $body .= '<p class="center" style="margin:1em;">
 <span class="alert">■今のところ登録されたメンバーはいません</span></p>'.NL;

foreach ($USR_LIST as $i=>$usr){
 list($date, $ID, $pwd, $alias, , $info) = explode('|', $usr);
 $postedNum = count(get_articles_by_author($ID));
 $bg = ($i%2==1) ? '#eff1f3' : '#fff';
 $body .= '<tr style="background:'.$bg.';"><td><a href="admin.php?mode=add_usr&amp;sub=detail&amp;aim='.$ID.'">'.$ID.'</a></td><td>'.$alias.'</td><td>'.date('Y-m-d H:i:s', $date).'</td><td>'.$postedNum.'</td><td><a href="admin.php?mode=add_usr&amp;DID='.$ID.'" onclick="return my_confirm(\'このメンバーを\')"><img src="Images/trash.png" alt="Delete" title="削除" /></a></td></tr>'.NL;
}
$body .= '</table>'.NL.'</fieldset>'.NL.'</form>'.NL;

return $DIVISION['body'] .= $header.$body;

?>
